Ok, if someone hits the same issue, I might have found a solution for this. I don't know if that's the proper way of handling it, but it seems to be working ok.

I chaned this bit, and replaced the assertion:

bool isConstant() const override { jassert(ns != nullptr); auto v = ns->constObjects.getValueAt(index); // objects and arrays are not constant... return !v.isArray() && !v.isObject(); }

by this :

bool isConstant() const override { if (ns == nullptr) return false; auto v = ns->constObjects.getValueAt(index); // objects and arrays are not constant... return !v.isArray() && !v.isObject(); }